package com.mentalhealthplatform.global.rbac.model;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;

public enum AccessLevel {
    PUBLIC,      // 公开，无需权限检查
    PRIVATE,     // 私有，只能关联一个权限
    PROTECTED;   // 受保护，可以关联多个权限

    @JsonCreator
    public static AccessLevel fromString(String value) {
        if (value != null) {
            for (AccessLevel level : AccessLevel.values()) {
                if (level.name().equalsIgnoreCase(value)) {
                    return level;
                }
            }
        }
        throw new IllegalArgumentException("Unexpected value: " + value);
    }

    @JsonValue
    public String toJson() {
        return name().toUpperCase();
    }
}
